package com.wgl.order.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wgl.model.order.OrderInfo;
import com.wgl.model.vo.order.OrderCountQueryVo;
import com.wgl.model.vo.order.OrderCountVo;
import com.wgl.model.vo.order.OrderQueryVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author wgl
 * @version 1.0.0
 * @ClassName OrderService.java
 * @Description TODO
 * @createTime 2022年02月13日 18:20:00
 */
public interface OrderService extends IService<OrderInfo> {
    /**
    * @Author: Wgl
    * @Description:生成订单
    * @Date: 2022/2/13 18:28;
    * @param scheduleId:
     * @param patientId: ;
    * @return: java.lang.Long;
    */
    Long saveOrder(String scheduleId, Long patientId);
    /**
    * @Author: Wgl
    * @Description: 查询订单详情
    * @Date: 2022/2/14 18:32;
    * @param orderId: ;
    * @return: com.wgl.model.order.OrderInfo;
    */
    OrderInfo getOrder(String orderId);

    /**
    * @Author: Wgl
    * @Description: 用户查询订单
    * @Date: 2022/2/14 18:41;
    * @param pageParam:
     * @param orderQueryVo: ;
    * @return: com.baomidou.mybatisplus.core.metadata.IPage<com.wgl.model.order.OrderInfo>;
    */
    IPage<OrderInfo> selectPage(Page<OrderInfo> pageParam, OrderQueryVo orderQueryVo);

    /**
    * @Author: Wgl
    * @Description: 取消预约
    * @Date: 2022/2/15 23:19;
    * @param orderId: ;
    * @return: java.lang.Boolean;
    */
    Boolean cancelOrder(Long orderId);
    /**
    * @Author: Wgl
    * @Description: 查询当天药就诊的预约记录的信息
    * @Date: 2022/2/16 14:36;
    ;
    * @return: null;
    */
    void patientTips();
    /**
    * @Author: Wgl
    * @Description: 统计查询
    * @Date: 2022/2/16 15:32;
    * @param orderCountQueryVo: ;
    * @return: java.util.Map<String,Object>;
    */
    Map<String,Object> getCountMap(@Param("vo") OrderCountQueryVo orderCountQueryVo);

}
